objects.sort((a, b) { return a.value['name'].toString().toLowerCase().compareTo(b.value['name'].toString().toLowerCase()); }); To reverse it you could do b.someProperty.compareTo(a.someProperty). Or sort it and then use .reversed